// 导入 axios 的类型
import type { AxiosRequestConfig, AxiosResponse } from 'axios'

// 自定义一个拦截器的接口类型
export interface IRequestInterceptor<T = AxiosResponse> {
  // 请求拦截器
  requestInterceptor?: (config: AxiosRequestConfig) => AxiosRequestConfig
  // 错误的请求拦截器
  requestinterceptorCatch?: (error: any) => any
  // 响应拦截器
  responseInterceptor?: (res: T) => T
  // 错误的响应拦截器
  responseInterceptorCatch?: (error: any) => any
}

// 自定义一个请求类型的接口
export interface IShuangRequestConfig<T = AxiosResponse>
  extends AxiosRequestConfig {
  // 扩展类型
  interceptors?: IRequestInterceptor<T>
  // 控制 loading 是否显示
  showLoading?: boolean
}
